﻿
namespace System.Runtime.InteropServices
{
	[AttributeUsage(AttributeTargets.Parameter, Inherited=false)]
	public sealed class OutAttribute : Attribute
	{
		// Methods
		public OutAttribute()
		{
		}
	}

	[AttributeUsage(AttributeTargets.Delegate | AttributeTargets.Interface | AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Method | AttributeTargets.Enum | AttributeTargets.Struct | AttributeTargets.Class | AttributeTargets.Assembly, Inherited = false), ComVisible(true)]
	public sealed class ComVisibleAttribute : Attribute
	{
		// Fields
		internal bool _val;

		// Methods
		public ComVisibleAttribute(bool visibility)
		{ this._val = visibility; }

		// Properties
		public bool Value
		{ get { return this._val; } }
	}

	[AttributeUsage(AttributeTargets.Delegate | AttributeTargets.Interface | AttributeTargets.Enum | AttributeTargets.Struct | AttributeTargets.Class | AttributeTargets.Assembly, Inherited = false), ComVisible(true)]
	public sealed class GuidAttribute : Attribute
	{
		// Fields
		internal string _val;

		// Methods
		public GuidAttribute(string guid)
		{ this._val = guid; }

		// Properties
		public string Value
		{ get { return this._val; } }
	}
}
